// Obejct.toSting.call
// Object.prototype.toString.call
function Fn () {}
let fn = new Fn()

console.log(fn.__proto__ === Fn.prototype);
console.log(Fn.prototype.__proto__ === Object.prototype);
console.log(Fn.__proto__ === Function.prototype);
console.log(typeof Fn.prototype === 'object');
console.log(typeof Fn === 'function');
console.log(typeof new Function() === 'function');

let Fn2 = new Function()
console.log(typeof Fn2 === 'function');

new Fn2()
new Fn()
const obj = {a: 1}
console.log(obj.__proto__ === Object.prototype);
console.log(Fn2.__proto__ === Function.prototype);
console.log(Function.__proto__ === Function.prototype);
console.log(Function.prototype.__proto__ === Object.prototype);
console.log(Object.__proto__ === Function.prototype);
console.log(Object.prototype.__proto__ === null);

// all true